package com.hkpw.system.service;

import com.hkpw.system.domain.DoorEventNotify;
import com.hkpw.system.domain.vo.DoorEventResult;
import com.hkpw.system.domain.vo.EventSubscribeViewVo;

import java.util.List;

/**
 * 门禁异步通知Service接口
 * 
 * @author Andy
 * @date 2022-09-28
 */
public interface IDoorEventNotifyService 
{


    /**
     * 处理门禁事件回调
     * @param doorEventResult
     * @return
     */
    public int  dealDoorEventNotify(DoorEventResult doorEventResult);

    /**
     * 查询订阅事件信息列表
     * @return
     */
    public List<EventSubscribeViewVo> getDoorEventSubscribeViewVo();

    /**
     * 查询门禁异步通知
     * 
     * @param id 门禁异步通知主键
     * @return 门禁异步通知
     */
    public DoorEventNotify selectDoorEventNotifyById(Long id);

    /**
     * 查询门禁异步通知列表
     * 
     * @param doorEventNotify 门禁异步通知
     * @return 门禁异步通知集合
     */
    public List<DoorEventNotify> selectDoorEventNotifyList(DoorEventNotify doorEventNotify);

    /**
     * 新增门禁异步通知
     * 
     * @param doorEventNotify 门禁异步通知
     * @return 结果
     */
    public int insertDoorEventNotify(DoorEventNotify doorEventNotify);

    /**
     * 修改门禁异步通知
     * 
     * @param doorEventNotify 门禁异步通知
     * @return 结果
     */
    public int updateDoorEventNotify(DoorEventNotify doorEventNotify);

    /**
     * 批量删除门禁异步通知
     * 
     * @param ids 需要删除的门禁异步通知主键集合
     * @return 结果
     */
    public int deleteDoorEventNotifyByIds(Long[] ids);

    /**
     * 删除门禁异步通知信息
     * 
     * @param id 门禁异步通知主键
     * @return 结果
     */
    public int deleteDoorEventNotifyById(Long id);

    /**
     * 清除指定天数之前的历史数据
     * @param days
     * @return
     */
    public int deleteDoorEventNotifyBeforeDays(int days);

    /**
     * 清理指定天数之前的非人脸识别通过的数据
     * @param days
     * @return
     */
    public int cleanUselessDoorEventNotify(int days);
}
